package com.booksquare.data;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.booksquare.data.JDBCUtil;

public class AutorDao {

	public List<Autor> obtenerAutores(){
		Connection connection = null;
		Statement st = null;
		ResultSet rs = null;
		List<Autor> oListaAutores = new ArrayList<Autor>();
		
		try{
			connection = JDBCUtil.getConnection();
			st = connection.createStatement();
			
			final String sQuery = "Select Id_Autor, Nombre, Puntaje " +
						"From Autor";
			rs = st.executeQuery(sQuery);
			
			while(rs.next()){
				oListaAutores.add(new Autor(rs.getInt("Id_Autor"), rs.getString("Nombre"), 
						rs.getInt("Puntaje") ));
			}
		}
		catch(SQLException ex){
			throw new IllegalStateException("Error al obtener los autores.", ex);
		}
		finally{
			JDBCUtil.closeResultSet(rs);
			JDBCUtil.closeStatement(st);
			JDBCUtil.closeConnection(connection);
		}
		return oListaAutores;
	}
	
	public List<Autor> obtenerAutores(int nIdAutor){
		Connection connection = null;
		Statement st = null;
		ResultSet rs = null;
		List<Autor> oListaAutores = new ArrayList<Autor>();
		
		try{
			connection = JDBCUtil.getConnection();
			st = connection.createStatement();
			
			final String sQuery = "Select Id_Autor, Nombre, Puntaje " +
						"From Autor where Id_Autor = " + Integer.toString(nIdAutor);
			rs = st.executeQuery(sQuery);
			
			while(rs.next()){
				oListaAutores.add(new Autor(rs.getInt("Id_Autor"), rs.getString("Nombre"), 
						rs.getInt("Puntaje") ));
			}
		}
		catch(SQLException ex){
			throw new IllegalStateException("Error al obtener los autores.", ex);
		}
		finally{
			JDBCUtil.closeResultSet(rs);
			JDBCUtil.closeStatement(st);
			JDBCUtil.closeConnection(connection);
		}
		return oListaAutores;
	}
	
}
